
// 【封装axios】

import axios from "axios";
import { Notify } from "vant"
import router from "@/router"
import store from "@/store"

//================== 区分环境，配置接口地址
import { API_URL } from "./apiUrl"


//================== 创建axios实例
let $axios = axios.create({
    baseURL: API_URL,
    timeout: 3000
})


// 自定义get方法！
$axios._get = function(url,data){
    return $axios.get(url,{
        params:data,
        headers:{
            authorization: store.state.user.userinfo.token
        }
    })
}
// 自定义post方法
$axios._post = function (url, data) {
    return $axios.post(url, data,{
        headers: {
            authorization: store.state.user.userinfo.token
        }
    })
}


//================== 配置拦截器
// 添加请求拦截器
$axios.interceptors.request.use(function (config) {
    return config;
}, function (error) {
    // 对请求错误做些什么
    return Promise.reject(error);
});

// 添加响应拦截器
$axios.interceptors.response.use(function (response) {
    // 对响应数据做点什么
    if (response.status == 200) {
        // responses.data后台返回的数据！
        if (response.data.code == 200) {
            return response.data;
        } else {
            // 两类错误：  1、数据请求出错    2、token错误
            Notify({ type: 'danger', message: response.data.msg });
        }
    } else {
        Notify({ type: 'danger', message: "请求出错！状态码" + response.status });
        console.log(response)
    }
}, function (error) {
    // 对响应错误做点什么
    return Promise.reject(error);
});


export default $axios;


// export default  对象！ ==>   import 变量    from "路径"

// export let 变量1=数据     ==>   import * as 变量   from "路径"
// export let 变量2=数据2    ===>  import { 变量1,变量2 }  from "路径"

// exports.属性1 = 值1
// exports.属性2 = 值2

